When translating source code from one programming language to another programming language, a technique to verify the correctness of the resulting code is used. In many previous techniques, some degree of manual testing and debugging of the translated code was performed. However, a program can have millions of lines of code, and testing the correctness of the translation of the program can be extremely difficult and time consuming. Some codebases are too large to find translation problems in a manual manner.
Translations of large programs are often performed by consulting companies and tool vendors. Such vendors often provide software tools to translate a program. However, such approaches have been known to have shortcomings with respect to the level of detail that can be tested to determine correctness. Furthermore, when a translation error is shown to occur, the prior tools could not isolate the translation error to one or more lines of code within the translated program. Thus the translation error could not be identified and corrected except by multiple trial and error processes with multiple re-translations and re-verifications.